from flask import Flask, request, Response, send_file
from flask_cors import CORS
import os
import time

app = Flask(__name__)
CORS(app)  # 启用 CORS

# 处理根路径请求，返回 index.html
@app.route('/')
def index():
    return send_file('index.html')

@app.route('/ask', methods=['GET', 'POST'])
def ask():
    if request.method == 'GET':
        question = request.args.get('question')
    else:
        data = request.get_json()
        question = data.get('question')
    if not question:
        return Response("Question is required", status=400)

    def generate():
        # 模拟流式数据
        # 一段较长的话
        long_text = "在当今这个科技飞速发展的时代，人工智能已经成为了推动各个领域进步的关键力量。它不仅在医疗、教育、金融等行业发挥着重要作用，还深刻地改变了我们的生活方式。通过机器学习和深度学习算法，人工智能能够处理和分析海量的数据，从中提取有价值的信息，为决策提供有力支持。例如，在医疗领域，人工智能可以帮助医生更准确地诊断疾病，提高治疗效果；在教育领域，它可以实现个性化学习，满足不同学生的需求。总之，人工智能的发展前景十分广阔，它将继续引领我们走向一个更加智能化、便捷化的未来。"
        # 把长文本拆分成较小的片段
        chunk_size = 1
        for i in range(0, len(long_text), chunk_size):
            chunk = long_text[i:i + chunk_size]
            # 按照 SSE 格式发送数据
            yield f"data: {chunk}\n\n"
            # 模拟处理延迟
            time.sleep(0.05)

    return Response(generate(), mimetype='text/event-stream')

if __name__ == '__main__':
    app.run(debug=True, port=5001)